# 1、后端接口中，第一个接口返回的是字典信息，包含用户id、名称，第二个接口返回的是分数列表。格式分别是：用户字典：{'1001':'zhangsan','1002':'lisi','1005':'tom', '1008':'jerry'}
# 分数列表[['1005',98],['1009':102],['1002', 85], ['1001':98],['1007': 120]]
# 请使用匿名函数，根据第一个字典中用户信息返回对应的分数，如果没有对应分数输出0。最后输出信息，输出格式举例："id为1001的用户zhangsan的分数是98"

d = {'1001': 'zhangsan', '1002': 'lisi', '1005': 'tom', '1008': 'jerry'}
lst = [['1005', 98], ['1009', 102], ['1002', 85], ['1001', 98], ['1007', 120]]

# temp = dict(lst)
#
# for key in d.keys():
#     if temp.get(key):
#         print("id为{}的用户{}的分数为{}".format(key,d[key],temp[key]))

x = lambda d, lst: [print("id为{}的用户{}的分数为{}".format(key, d[key], dict(lst)[key])) if dict(lst).get(key) else print("0")
                    for key in d.keys()]

x(d, lst)

# 字典和lambda表达式应用的非常灵活，非常棒

# 2、输入一个英文句子,翻转句子中的单词顺序,但单词内字符的顺序不变 (注意标点符号的位置）
import re

s = "I love that when after I spend the day with you I can still smell your perfume on my clothes, and I love that you are the last person that I want to talk to before I go to sleep at night."


def convert_sentence(s: str) -> str:
    print(s)
    pattern = '.+?[,!?.]'  # 第一个问号表示非贪婪
    regex = re.compile(pattern)
    r = regex.finditer(s)
    ret = []
    for x in r:
        ret.append(' '.join(x.group()[0:-1].strip().split()[::-1]))
        ret.append(x.group()[-1] + " ")
    return ''.join(ret)


print(convert_sentence(s))

# 思路是对的，但是这里提示注意标点符号位置，是让你们不要忽略标点符号，不是让你们以标点符号来断句。
# 最终的结果应该整个句子全部反过来。再尝试一下